// SSE消息返回类型
export interface FetchEventSourceReturn {
  // 消息id
  id: string;
  // 事件类型
  event: string;
  // 重试次数
  retry?: number;
  // 消息数据
  data: any;
}

// SSE请求配置
export interface FetchEventSourceOptions {
  // url 接口地址
  url: string;
  // 请求头
  headers?: Record<string, string>;
  // 请求方法 默认使用post
  method?: 'GET' | 'POST';
  // 请求参数
  data?: Record<string, any>;
  credentials?: RequestInit['credentials'];
  // 关闭回调
  onclose?: () => void;
  // 错误回调
  onerror?: (err: any) => void;
  // 消息回调
  onmessage?: (ev: FetchEventSourceReturn) => void;
  // 打开回调
  onopen?: (response: Response) => void;
}

export interface RequestParams extends RequestInit {
  url: string;
  data: Record<string, any> | null;
}
interface ContentItem {
  type: 'init' | 'user' | 'aime';
}

export interface ErrorReportParam {
  name: string;
  message: string;
  stack: string | undefined;
  category?: 'ajax' | 'js';
}
